public class code1 {
//    牛客 top 101 数组中只出现一次的 两个数字
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return int整型一维数组
     */
    public int[] FindNumsAppearOnce (int[] nums) {

        // 处理数组的特殊情况
        if(nums == null || nums.length == 0) {
            return null;
        }

        // 通过创建一个 hash 表，用来存储记录各个数字出现的次数
        HashMap<Integer,Integer> map = new HashMap<>();

        for(int i = 0; i < nums.length; i++) {
            // 将 hash 表中不存在的元素进行添加。
            if(!map.containsKey(nums[i])) {
                map.put(nums[i], 1);
            }else {
                // 当表中元素存在，此时将对应的 value 值 +1
                map.put(nums[i], map.get(nums[i]) + 1);
            }
        }

        // 创建出一个数组，用来存放 hash 表中只出现一次的元素
        int[] arr = new int[2];
        // 定义一个标志位，用来修改当前数组下标的位置
        int flag = 0;

        for(int j = 0; j < nums.length; j++) {
            if(map.get(nums[j]) == 1) {
                arr[flag] = nums[j];
                flag++;
            }
        }

        // 对顺序进行简单调整
        if(arr[0] > arr[1]) {
            int temp = arr[0];
            arr[0] = arr[1];
            arr[1] = temp;
        }

        return arr;
    }
}
